package com.ruoyi.pos.service.system;

import com.ruoyi.pos.domain.dto.system.request.SystemConfigQueryRequest;
import com.ruoyi.pos.domain.dto.system.request.SystemConfigUpdateRequest;
import com.ruoyi.pos.domain.dto.system.response.SystemConfigResponse;
import com.ruoyi.pos.domain.dto.common.response.BasePageResponse;

/**
 * POS系统配置Service接口
 * 
 * @author ruoyi
 * @date 2025-01-30
 */
public interface IPosSystemConfigService {

    /**
     * 查询单个系统配置信息
     * 支持根据ID、配置键查询
     * 
     * @param request 查询请求
     * @return 系统配置信息
     */
    SystemConfigResponse getSystemConfig(SystemConfigQueryRequest request);

    /**
     * 分页查询系统配置列表
     * 
     * @param request 查询请求
     * @return 分页响应
     */
    BasePageResponse<SystemConfigResponse> querySystemConfigs(SystemConfigQueryRequest request);

    /**
     * 批量更新系统配置
     * 
     * @param request 更新请求
     * @return 是否成功
     */
    boolean updateSystemConfigs(SystemConfigUpdateRequest request);

    /**
     * 获取系统配置值
     * 
     * @param configKey 配置键
     * @return 配置值
     */
    String getConfigValue(String configKey);

    /**
     * 获取系统配置值（带默认值）
     * 
     * @param configKey 配置键
     * @param defaultValue 默认值
     * @return 配置值
     */
    String getConfigValue(String configKey, String defaultValue);
}
